<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>The source code</title>
  <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
  <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
  <style type="text/css">
    .highlight { display: block; background-color: #ddd; }
  </style>
  <script type="text/javascript">
    function highlight() {
      document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
    }
  </script>
</head>
<body onload="prettyPrint(); highlight();">
  <pre class="prettyprint lang-js"><span id='Ext-layout-FitLayout'>/**
</span> * @class Ext.layout.FitLayout
 * @extends Ext.layout.ContainerLayout
 * &lt;p&gt;This is a base class for layouts that contain &lt;b&gt;a single item&lt;/b&gt; that automatically expands to fill the layout's
 * container.  This class is intended to be extended or created via the &lt;tt&gt;layout:'fit'&lt;/tt&gt; {@link Ext.Container#layout}
 * config, and should generally not need to be created directly via the new keyword.&lt;/p&gt;
 * &lt;p&gt;FitLayout does not have any direct config options (other than inherited ones).  To fit a panel to a container
 * using FitLayout, simply set layout:'fit' on the container and add a single panel to it.  If the container has
 * multiple panels, only the first one will be displayed.  Example usage:&lt;/p&gt;
 * &lt;pre&gt;&lt;code&gt;
var p = new Ext.Panel({
    title: 'Fit Layout',
    layout:'fit',
    items: {
        title: 'Inner Panel',
        html: '&amp;lt;p&amp;gt;This is the inner panel content&amp;lt;/p&amp;gt;',
        border: false
    }
});
&lt;/code&gt;&lt;/pre&gt;
 */
Ext.layout.FitLayout = Ext.extend(Ext.layout.ContainerLayout, {
<span id='Ext-layout-FitLayout-property-monitorResize'>    // private
</span>    monitorResize:true,

<span id='Ext-layout-FitLayout-property-type'>    type: 'fit',
</span>
<span id='Ext-layout-FitLayout-method-getLayoutTargetSize'>    getLayoutTargetSize : function() {
</span>        var target = this.container.getLayoutTarget();
        if (!target) {
            return {};
        }
        // Style Sized (scrollbars not included)
        return target.getStyleSize();
    },

<span id='Ext-layout-FitLayout-method-onLayout'>    // private
</span>    onLayout : function(ct, target){
        Ext.layout.FitLayout.superclass.onLayout.call(this, ct, target);
        if(!ct.collapsed){
            this.setItemSize(this.activeItem || ct.items.itemAt(0), this.getLayoutTargetSize());
        }
    },

<span id='Ext-layout-FitLayout-method-setItemSize'>    // private
</span>    setItemSize : function(item, size){
        if(item &amp;&amp; size.height &gt; 0){ // display none?
            item.setSize(size);
        }
    }
});
Ext.Container.LAYOUTS['fit'] = Ext.layout.FitLayout;</pre>
</body>
</html>
